package com.easy.cloud.web.service.upms.biz.repository;

import com.easy.cloud.web.component.mysql.repository.JpaLogicRepository;
import com.easy.cloud.web.service.upms.biz.domain.DeptDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;

import java.util.Optional;

/**
 * Department持久化
 *
 * @author Fast Java
 * @date 2023-08-03 15:00:02
 */
@Repository
public interface DeptRepository extends JpaLogicRepository<DeptDO, String>, JpaSpecificationExecutor<DeptDO> {

    /**
     * 统计当前部门下是否存在子部门
     *
     * @param parentId 父级部门
     * @return long
     */
    long countByParentId(String parentId);

    /**
     * 校验同一层级下是否具有相同的部门信息
     *
     * @param name     部门名称
     * @param parentId 父级目录
     * @return java.util.Optional<com.easy.cloud.web.service.upms.biz.domain.DeptDO>
     */
    Optional<DeptDO> findByNameAndParentId(String name, String parentId);
}